// 给所有ajax 设置基础路径
axios.defaults.baseURL = 'http://www.itcbc.com:8000'
// 给所有请求设置 token 认证
// 所有请求都添加包括注册和登录
// axios.defaults.headers.conmon['Authorization'] = localStorage.getItem(')


//请求拦截器
axios.interceptors.request.use(function (config) {

  // 给满足条件的元素 添加token认证
  // 如果路径中不包含 /api/ 那么就添加token 认证
  //  indexOf('/api/') == -1) 说明路径中不包含 /api/ 那么久添加token
  // 不是注册和登录 indexOf('/api/')  就是-1 ，就需要添加token
  if (config.url.indexOf('/api/') == -1) {
    config.headers.Authorization = localStorage.getItem('myToken')
  }
  // 返回ajax   
  return config
}, function (error) {

  // 固定写法 但是一定要有返回值
  return Promise.reject(error)
})



// 响应拦截器
axios.interceptors.response.use(function (response) {
  // 判断所有ajax的响应业务状态码
  if (response.data.code == 1) {
    // 此处不需要return 需要把数据流转到ajax中
    toastr.warning(response.data.message)
  }
  // 返回响应对象， 后面的ajax还要使用相应对象
  return response

}, function (error) {

  if (error.response) {
    // token 无效或者没有登录强行访问index.html 页面 就会出现身份认证错误
    // 解决方案就是重定向到页面登录
    // 而服务器响应给客户端的是错误处理 所以有第二个函数处理
    // console.dir(error)
    // error里面有response, response 里面有data
    // data 里面有code 和 message
    if (error.response.data.message == '身份认证失败') {
      // index.html 页面可以这样处理 但是其他页面
      // 要 他们的 父页面 inedex.html 进行跳转 而不是他们页面跳转
      // index.html 页面出现的问题 自己跳转

      if (location.href.indexOf('index.html') != -1) {
        // 重定向到登录页面 销毁token
        location.href = '//index.html'
        localStorage.removeItem('myToken')


      } else {
        // 让他们的父页面跳转 -window.prent代表父页面的window
        window.parent.location.href = '/login.html'
        localStorage.removeItem('myToken')
      }


      // // 重定向到登录页面 销毁token
      // location.href = './login.html'
      // localStorage.removeItem('myToken')
    } else {
      toastr.error(error.response.data.message)
    }
  }
  // 固定写法 但是一定要有返回值
  return Promise.reject(error)
})